//
//  HYTApiClient+Ext.h
//  mompharmacy
//
//  Created by chaizhiyong on 15/5/12.
//  Copyright (c) 2015年 chaizhiyong. All rights reserved.

#import "KXJson.h"
#import "CSHApiClient.h"
#import "LKDPatientListModel.h"
#import "ItemApplyModel.h"
typedef void (^didFinishLoaded)(KXJson *json, NSString *path);
typedef void (^didFailLoaded)(NSError *error, NSString *path);
typedef void (^patientListModelDataModel)(LKDPatientListModel *model, NSString *path);
typedef void (^itemApplyModel)(ItemApplyModel *model, NSString *path);
//typedef void (^cardsListDataModel)(CTCardsListModel *model, NSString *path);
//typedef void (^userInfoFinishLoaded)(CSHUserInfoModel *model, NSString *path);

@interface CSHApiClient (Ext)
#pragma mark-用户相关接口
/**
 *  用户注册
 *
 *  @param phoneNum          手机号
 *  @param verification_code 验证码
 *  @param password          密码
 *  @param finish            成功返回
 *  @param fail              失败返回
 */
+ (void)registerWithPhoneNum:(NSString *)phoneNum verification_code:(NSString*)verification_code password:(NSString*)password didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  获取验证码
 *
 *  @param phoneNum 手机号
 *  @param finish   成功返回
 *  @param fail     失败返回
 */
+ (void)getTelVerifyCodeWithPhoneNum:(NSString *)phoneNum didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  登录
 *
 *  @param mobile   手机号
 *  @param password 密码
 *  @param finish   成功返回
 *  @param fail     失败返回
 */
+(void)loginWithMobile:(NSString*)mobile password:(NSString*)password didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  验证短信验证码
 *
 *  @param verification_code 手机验证码
 *  @param mobile            手机号
 *  @param finish            成功返回
 *  @param fail              失败返回
 */
+(void)checkVerificationCode:(NSString*)verification_code mobile:(NSString*)mobile  didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  重置密码
 *
 *  @param password          密码
 *  @param verification_code 验证码
 *  @param mobile            手机号
 *  @param finish            成功返回
 *  @param fail              失败返回
 */
+(void)setPassword:(NSString*)password VerificationCode:(NSString*)verification_code mobile:(NSString*)mobile  didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  获取信息
 *
 *  @param type       base：基本 verify：验证
 *  @param finish     成功返回
 *  @param fail       失败返回
 */
+(void)getUserInfoType:(NSString*)type didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  患者评价 HTML5，会在接口里面返回html页面
 *
 *  @param finish     成功返回
 *  @param fail       失败返回
 */
+(void)getPatientJudgeDidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  获取医师资格认证
 *
 *  @param user_token token
 *  @param finish     成功返回
 *  @param fail       失败返回
 */
+(void)getDoctorAccredDidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  更新个人信息
 *
 *  @param head_ico      用户头像
 *  @param doctor_name   姓名
 *  @param gender        性别
 *  @param tel           电话号码
 *  @param email         邮箱
 *  @param hospital_name 医院名称
 *  @param department    科室名称
 *  @param job_name      职称名称
 *  @param begoodat      擅长
 *  @param card_pic_path 身份证图片
 *  @param work_pic_path 工作证或执照图片
 *  @param finish        成功返回
 *  @param fail          失败返回
 */
+(void)updateInfoAccredHead_ico:(NSString*)head_ico doctor_name:(NSString*)doctor_name gender:(NSString*)gender tel:(NSString*)tel email:(NSString*)email hospital_name:(NSString*)hospital_name department:(NSString*)department job_name:(NSString*)job_name begoodat:(NSString*)begoodat card_pic_path:(NSString*)card_pic_path work_pic_path:(NSString*)work_pic_path didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  获取二维码
 *
 *  @param is_examine 资格验证状态-0审核中，1通过审核，2未通过审核
 *  @param finish     成功返回
 *  @param fail       失败返回
 */
+(void)getQRcodeIs_examine:(NSString*)is_examine didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  获取加号服务
 *
 *  @param finish 成功返回
 *  @param fail   失败返回
 */
+(void)getOpenAdddidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  设置加号服务
 *
 *  @param is_add 加号服务 0:未开启 1:已开启
 *  @param finish 成功返回
 *  @param fail   失败返回
 */
+(void)setOpenAddIs_add:(int)is_add DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  获取黑名单
 *
 *  @param finish 成功返回
 *  @param fail   失败返回
 */
+(void)getBlackListDidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  把患者移除黑名单
 *
 *  @param patient_token 与患者绑定的一个生成的字符串
 *  @param finish        成功返回
 *  @param fail          失败返回
 */
+(void)rmBlackListPatient_token:(NSString*)patient_token DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

#pragma mark-首页(消息数量)
/**
 *  首页(消息数量)
 *
 *  @param finish 成功返回
 *  @param fail   失败返回
 */
+(void)getInfoNumDidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  添加患者
 *
 *  @param append_tag   附加标签
 *  @param tag_ids      	已选择标签（1,2,3）
 *  @param patient_code 患者标识
 *  @param tel          患者电话号
 *  @param finish       成功返回
 *  @param fail         失败返回
 */
+(void)addPatientNumAppend_tag:(NSString*)append_tag Tag_ids:(NSString*)tag_ids patient_code:(NSString*)patient_code tel:(NSString*)tel DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  加号申请列表
 *
 *  @param finish 成功返回
 *  @param fail   失败返回
 */
+(void)patientAppliListDidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  患者申请详情（就诊记录用html5 实现）
 *
 *  @param patient_code 患者标识
 *  @param finish
 *  @param fail
 */
+(void)patientAppliDetailPatient_code:(NSString*)patient_code DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  我申请项目审核通知列表
 *
 *  @param fail
 */
+(void)myToAppliProjNoticeListDidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  向我申请项目列表
 *
 *  @param finish
 *  @param fail
 */
+(void)toMyAppliProjListItemApplyModel:(itemApplyModel)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  向我申请项目详情
 *
 *  @param finish
 *  @param fail
 */
+(void)toMyAppliProjDetailApply_doc_id:(NSString*)apply_doc_id DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  向我申请项目通过
 *
 *  @param solution_id  方案id
 *  @param apply_doc_id 申请项目的医生id
 *  @param finish
 *  @param fail
 */
+(void)toMyAppliProjPassSolution_id:(NSString*)solution_id apply_doc_id:(NSString*)apply_doc_id DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  搜索标签
 *
 *  @param finish
 *  @param fail
 */
+(void)searchTagDidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  编辑标签
 *
 *  @param tag_id 标签id
 *  @param finish
 *  @param fail
 */
+(void)editTagTag_id:(NSString*)tag_id DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  删除标签
 *
 *  @param tag_id tag_id
 *  @param finish
 *  @param fail
 */
+(void)deleteTagTag_id:(NSString*)tag_id DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  编辑标签保存
 *
 *  @param tag_id   标签id
 *  @param tag_text 标签名
 *  @param finish
 *  @param fail
 */
+(void)editTagSaveTag_id:(NSString*)tag_id tag_text:(NSString*)tag_text DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
#pragma mark-我的患者相关接口
/**
 *  获取患者列表
 *
 *  @param name     姓名
 *  @param mobile   手机号
 *  @param date     时间
 *  @param sex      性别
 *  @param age      年龄
 *  @param disease  项目
 *  @param solution 方案
 */
+(void)getPatientListKeyword:(NSString*)keyword date:(NSString*)date sex:(NSString*)sex age:(NSString*)age disease:(NSString*)disease solution:(NSString*)solution didFinishLoaded:(patientListModelDataModel)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  获取患者详情
 *
 *  @param patient_code 患者code
 *  @param info_type    获取信息类型 ： baseinfo 为基本信息，all为全部信息
 *  @param finish
 *  @param fail
 */
+(void)getPatientDetailPatient_code:(NSString*)patient_code info_type:(NSString*)info_type DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  获取就诊记录
 *
 *  @param patient_code 患者code
 *  @param finish
 *  @param fail
 */
+(void)getMedicalRecordPatient_code:(NSString*)patient_code didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  设置黑名单
 *
 *  @param patient_code 患者code
 *  @param finish
 *  @param fail
 */
+(void)setToBlackListPatient_code:(NSString*)patient_code didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  获取已选标签
 *
 *  @param patient_code 患者code
 *  @param finish
 *  @param fail
 */
+(void)getSelectedTagPatient_code:(NSString*)patient_code didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  编辑患者标签
 *
 *  @param patient_code 患者code
 *  @param tag_ids      标签id 用”，“分割 。 如  2,45,23
 *  @param special_tag  	特殊标签 （这里可语音识别）
 *  @param finish
 *  @param fail
 */
+(void)setTagPatient_code:(NSString*)patient_code tag_ids:(NSString*)tag_ids special_tag:(NSString*)special_tag didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;


#pragma mark-我的日程表
/**
 *  出诊设置
 *
 *  @param finish
 *  @param fail
 */
+(void)ourcallsetDidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  出诊设置确定
 *
 *  @param return_set_outcall  1":"1","2":"0","3":"1","4":"1","5":"0","6":"0","7":"1","8":"0","9":"1",
 *  @param finish
 *  @param fail
 */
+(void)outcallConfirmReturn_set_outcall:(NSString*)return_set_outcall DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  日程表展示
 *
 *  @param open_date 时间
 *  @param finish
 *  @param fail
 */
+(void)displayRiliOpen_date:(NSString*)open_date DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  一天的日程表
 *
 *  @param open_date 加号日期
 *  @param finish
 *  @param fail
 */
+(void)scheduleDayOpen_date:(NSString*)open_date DidFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  一天的日程表加人保存
 *
 *  @param open_date 加号日期
 *  @param open_time 加号时段
 *  @param open_num  可加人数
 *  @param finish
 *  @param fail
 */
+(void)ourcallPeopleNumOpen_date:(NSString*)open_date open_time:(NSString*)open_time open_num:(NSString*)open_num didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;




//
//+(void)loginWithValidateCode:(NSString*)validateCode mobile:(NSString*)mobile didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
//+(void)loginWithPassword:(NSString*)password mobile:(NSString*)mobile didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
//
//+(void)loginWithToken:(NSString*)token didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
//
//#pragma mark-扫一扫
//+(void)getShopInfoFromScanContent:(NSString*)content didFinishLoaded:(shopInfoDataModel)finish didFailLoaded:(didFailLoaded)fail;
//
//+(void)getCardInfoFromScanContent:(NSString*)content didFinishLoaded:(cardInfoDataModel)finish didFailLoaded:(didFailLoaded)fail;
//
//#pragma mark-扫一扫
//
//#pragma mark-常用会员卡(已经领取)
//+(void)getCardsHaveDrawedLongitude:(NSString*)longitude latitude:(NSString*)latitude didFinishLoaded:(cardsListDataModel)finish didFailLoaded:(didFailLoaded)fail;
//
//#pragma mark-附近会员卡(未领取)
//+(void)getCardsNoDrawedLongitude:(NSString*)longitude latitude:(NSString*)latitude didFinishLoaded:(cardsListDataModel)finish didFailLoaded:(didFailLoaded)fail;








/**
 *  收藏
 *
 *  @param dId     详情ID
 
 */
+ (void)detailCollection:(NSString*)dId type:(NSString*)type detailType:(NSString*)detailType didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 * 点赞
 *
 *  @param dId     详情ID
 
 */
+ (void)detailOpinion:(NSString*)dId type:(NSString*)type detailType:(NSString*)detailType didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  注册
 *
 *  @param phoneNum     手机号码
 *  @param inviterCode 邀请码
 *  @param pwd        密码
 */

/**
 *  登录
 *
 *  @param phoneNum     手机号码
 *  @param verifyCode 验证码
 *  @param pwd        密码
 */
+ (void)userLoginWithPhoneNum:(NSString *)phoneNum passwd:(NSString *)pwd didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  修改密码
 *
 *  @param phoneNum     手机号码
 *  @param newpwd     新密码
 *  @param verifyCode   验证码
 *  @param finish
 *  @param fail
 */
+ (void)updatePasswordWithOldPwd:(NSString *)oldPwd newPwd:(NSString *)newPwd didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  找回密码验证手机号
 *
 *  @param phoneNum     手机号码
 *  @param verifyCode   验证码
 *  @param finish
 *  @param fail
 */
+ (void)checkPasswordWithPhoneNum:(NSString *)phoneNum  verifyCode:(NSString *)verifyCode didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;

/**
 *  忘记密码
 *
 *  @param phoneNum     手机号码
 *  @param newpwd     新newPwd
 *  @param finish
 *  @param fail
 */
+ (void)inputPasswordWithPhoneNum:(NSString*)phoneNum newPwd:(NSString *)newPwd didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 *  更改绑定手机提交旧手机验证码
 *
 *  @param phoneNum     手机号码
  *  @param verifyCode   验证码
 *  @param finish
 *  @param fail
 */
+ (void)updateVerifyCodeWithPhoneNum:(NSString *)phoneNum verifyCode:(NSString *)verifyCode didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 * 	更改绑定手机新手机提交
 *
 *  @param phoneNum     手机号码
 *  @param verifyCode   验证码
 *  @param finish
 *  @param fail
 */
+ (void)changeBindPhoneWithNewPhoneNum:(NSString*)phoneNum verifyCode:(NSString *)verifyCode didFinishLoaded:(didFinishLoaded)finish didFailLoaded:(didFailLoaded)fail;
/**
 * 	个人中心
 *  @param userName   用户名
 *  @param finish
 *  @param fail
 */
@end
